#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N=2e5+10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
int a[35],b[35],n;
ll f[35][2];//f[i][j]为前i个数中a原来的元素在a数列和在b数列的和情况
void solve()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) cin>>b[i];
	for(int i=2;i<=n;i++)//从二开始才能做到a_i-a_i-1)
	{
		f[i][0]=min(f[i-1][0]+abs(a[i]-a[i-1])+abs(b[i]-b[i-1]),
					f[i-1][1]+abs(a[i]-b[i-1])+abs(b[i]-a[i-1]));//求第i个下标不交换的最大情况

		f[i][1] = min(f[i - 1][0] + abs(b[i] - a[i - 1]) + abs(a[i] - b[i - 1]), 
                	f[i - 1][1] + abs(b[i] - b[i - 1]) + abs(a[i] - a[i - 1]));//求第i个下标交换的最大情况	
	}

	cout<<((f[n][0]<f[n][1])?f[n][0]:f[n][1])<<'\n';
	//cout<<"test: "<<f[n][0]<<" "<<f[n][1]<<'\n';
	//cout << min(f[n][0], f[n][1]) << '\n';
	
}

int main()
{
	close();
	int T; cin>>T;
	while (T--) solve();
	return 0;
}
//ai只可以与bi交换